# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

DEFINES.update(
    # Don't use icu namespace automatically in client code.
    U_USING_ICU_NAMESPACE = 0,

    # Don't include obsolete header files.
    U_NO_DEFAULT_INCLUDE_UTF_HEADERS = 1,

    # Remove chunks of the library that we don't need (yet).
    UCONFIG_NO_LEGACY_CONVERSION = True,
    UCONFIG_NO_TRANSLITERATION = True,
    UCONFIG_NO_REGULAR_EXPRESSIONS = True,
    UCONFIG_NO_BREAK_ITERATION = True,

    # We don't need to pass data to and from legacy char* APIs.
    U_CHARSET_IS_UTF8 = True,
)

if not CONFIG['HAVE_LANGINFO_CODESET']:
    DEFINES['U_HAVE_NL_LANGINFO_CODESET'] = 0

if CONFIG['MOZ_DEBUG']:
    DEFINES['U_DEBUG'] = 1

# ICU requires RTTI
if CONFIG['GNU_CXX']:
    CXXFLAGS += ['-frtti']
elif CONFIG['OS_TARGET'] == 'WINNT':
    CXXFLAGS += ['-GR']

DISABLE_STL_WRAPPING = True
ALLOW_COMPILER_WARNINGS = True

# We allow compiler warnings, but we can at least cut down on spammy
# warnings that get triggered for every file.
if CONFIG['CLANG_CL']:
    CFLAGS += [
        '-Wno-macro-redefined',
        '-Wno-microsoft-include',
    ]
    CXXFLAGS += [
        '-Wno-macro-redefined',
        '-Wno-microsoft-include',
    ]

if CONFIG['_MSC_VER'] and not CONFIG['CLANG_CL']:
    CFLAGS += [
        '-wd4005', # 'WIN32_LEAN_AND_MEAN' : macro redefinition
        '-wd4996', # The compiler encountered a deprecated declaration.
    ]
    CXXFLAGS += [
        '-wd4005', # 'WIN32_LEAN_AND_MEAN' : macro redefinition
        '-wd4333', # '>>' : right shift by too large amount, data loss
        '-wd4996', # The compiler encountered a deprecated declaration.
    ]
